Installation

Installation
How do I install CVSGrab?

First you need a Java virtual machine, version 1.2 or better. Go to http://java.com/ if you don't have a recent version of Java on your computer.

Add java.exe, located under the bin folder of your Java installation, to the PATH environment variable.

On Windows, unzip cvsgrab-2.0-bin.zip, and set the environment variable CVSGRAB_HOME to the installation directory of cvsgrab, or modify cvsgrab.bat and uncomment the line set CVSGRAB_HOME= .

On Unix, untar cvsgrab-2.0-bin.tar.gz, and set the environment variable CVSGRAB_HOME to the installation directory of cvsgrab.

Note: On Windows, environment variables can be defined from the Dos command line with:

set ENVIRONMENT_VARIABLE = value

Or for Windows XP, from Control Panel / System / Advanced tab / Environment variables button

Which version of Java is supported?

Java 1.0 and 1.1 won't work at all, Java 1.2 onwards should work well, and Java 1.4 is the version i'm using for the tests and it's also the version to use if you have issues with SSL or stuff like that.

How can i run cvsgrab as an Ant task?

Install the cvsgrab task in Ant by using the following:

<property name="cvsgrab.dir" value="[Your CVSgrab installation directory]" />

<taskdef name="cvsgrab" classname="net.sourceforge.cvsgrab.CVSGrabTask" classpath="${cvsgrab.dir}/lib/cvsgrab.jar"/>

Then the <cvsgrab> task is available in your Ant build script.

Connection issues

Connection issues
How can i use a proxy?

Use the following arguments: -proxyHost [address of the proxy] -proxyPort [port of the proxy]

Example: -proxyHost fireawll.mycompany.com -proxyPort 8080

If the proxy requires authentification, you can use -proxyUser [user name for the proxy] -proxyPassword [password for the proxy]

Example: -proxyUser myLogin -proxyPassword myPassword

If the proxy requires authentification with NTLM, like MS proxy, you can use -proxyNTDomain [NT domain]

Example: -proxyUser ntLogin -proxyPassword ntPassword -proxyNTDomain ntDomain

Errors of the kind: java.io.IOException Server returned HTTP response code: 407 for URL seem to be caused by the lack of NT domain authentification.

Note that you need the Java Cryptography extention ( JCE ) package installed or upgrade to Java 1.4 to use this feature.

The site hosting the web interface is password-protected. How can i authenticate on it?

If the web site uses standard http authentification (a message box pops up on your browser and asks for your user name and password), then you can use the following arguments: -webUser [user name] -webPassword [password]

Example: -webUser joe121 -webPassword xyz123

How can i speed up downloads?

Enable simultaneous downloads, it should give you a good performance boost when downloading a repository for the first time.

Use the following arguments: -connections [number of connection]

Example: -connections 3 will open 3 simultaneous downloads, recommanded value for DSL connections.

Repository issues

Repository issues
What should i use as the root url, what should i use as the package path?

On ViewCVS, the root url is the url you get when you click on the element under [brackets] on the Current directory line.

For example, on the following site, http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ant.core/ , you have this line:

Current directory: [Eclipse_Project] / org.eclipse.ant.core

Click on [Eclipse_Project], this gives you the root url to use: http://dev.eclipse.org/viewcvs/index.cgi/

And the package path is org.eclipse.ant.core/

As a general rule, the root url should end with .cgi/ or .py/ or viewcvs/ or source/, the package path is the rest of the url.

Do not include any query strings like #dirlist or ?cvsroot=repo in the root url or the package path.

How can i give another name to the folder that's being checked out?

Let's suppose you have -destDir c:/tmp and -packagePath myProject/myPackage-v-2.0

If you run cvsgrab, it will checkout the files to the forder c:/tmp/myProject/myPackage-v-2.0

To checkout files to c:/tmp/myPackage for example, you need to add the parameter -packageDir myPackage

Can CVSGrab work with cvsweb or other exotic cvs web interface?

Yes for cvsweb 2.0, and no for the other types of web interfaces, but if you give me the url to your site, i should be able to provide support to it. Add this as a feature request in SourceForge.

CVSGrab fails to autodetect the type of the cvs web interface used, what can i do?

File a bugreport on Bug tracker and give the url of the size you were trying to access.

CVSGrab browses the directories but fails to download any file, what can i do?

File a bugreport on Bug tracker and give the url of the size you were trying to access.

How can i use CVSGrab on a repository with multiple root?

If you have a repository that you access with urls of the type http://cvs.cocoondev.org/cgi-bin/viewcvs.cgi/fins/?cvsroot=jfchart (with ViewCVS 0.9.2 with multiple repositories installed), then try the following command to grab your files:

cvsgrab -rootUrl http://cvs.cocoondev.org/cgi-bin/viewcvs.cgi/ -package fins -queryParams cvsroot=jfchart -destDir c:/checkout

This is not necessary with ViewCVS 1.0 as cvsgrab can autodetect the name of the repository with this version.

Functionality

Functionality
Why is CVSGrab written in Java?

Because i know Java best, and it works on most operating systems. And there are great libraries available that help me to do the job better and faster.

Can i checkin modified or new files to the repository? Can i send patches?

No! CVSGrab provides only the functionality available from the web interface, and right now it's not possible to get write access to the cvs repository from any web interface. Or give me proof if i'm wrong.

Can i checkout modules?

Modules are a convenient functionality of cvs that groups different packages under the same name. Unfortunately it's not yet supported by cvsgrab, but maybe in the 2.1 release...